Formulare

Otázka od: Bronislav Klucka

1. 12. 2003 0:30

Zdar,
1/ jak zjistim seznam formularu, keter vlastni dana aplikace? muzu se k tomu
nejak dostat???
Ja jsem nasel jenom Application.Components, kde je ale take THintWindow..
takze jsem to testoval proti TForm (Application.Components[i] is TForm).
2/ Nasledne jsme oteviral formulare z dll, kerym jsem dal za ownera take
Application (to jsem si do dll dal pouhym vlozenim unity Forms do uses):
Form4:=TForm4.Create(Application), ale pokud jsem prochazel
Application.Components, tak jsem tento formular videl, (sledoval jsem
caption oken), ale neprosel mi prez (Application.Components[i] is TForm)...
to vratil false, takze jsem to musel vyresit tak, ze u dane komponenty
hledam, zda ma propery FormStyle
(GetPropInfo(AComponent.ClassInfo,AProperty))....

Ma toto jednoduzsi reseni? jak se da zjistit seznam formularu, ktere vlastni
aplikace, proc neprojde ta kontrola na typ TForm, pokud je to formular s
dll???

Diky,
Brona


Odpovedá: Ludek ZITA

1. 12. 2003 0:59


----- Original Message -----
From: "Bronislav Klucka" <bronislav.klucka@pro2-soft.com>

> 1/ jak zjistim seznam formularu, keter vlastni dana aplikace? muzu se k
tomu
> nejak dostat???

Ahoj.

for i := 0 to Screen.FormCount - 1 do
   Screen.Forms[i].....


Ludek


Odpovedá: Petr Vones

1. 12. 2003 1:13

From: "Bronislav Klucka" <bronislav.klucka@pro2-soft.com>
> 1/ jak zjistim seznam formularu, keter vlastni dana aplikace? muzu se k tomu
> nejak dostat???

Napriklad Screen.Forms

> caption oken), ale neprosel mi prez (Application.Components[i] is TForm)...
> to vratil false, takze jsem to musel vyresit tak, ze u dane komponenty

Pokud neni DLL i hostujici aplikace prelozena s runtime balicky tak mezi nimi
nemuzes predavat objekty. V procesu je tak (zbytecne) cely kod VCL vlastne
dvakrat, takze "EXE.TObject" <> "DLL.TObject".

> Ma toto jednoduzsi reseni? jak se da zjistit seznam formularu, ktere vlastni
> aplikace, proc neprojde ta kontrola na typ TForm, pokud je to formular s
> dll???

Viz vyse. Kazda trida (jeji VMT) musi byt v celem procesu pouze jednou aby si
ji mohl takto pouzivat. A to lze docilit jen pouzitim runtime balicku.

Petr Vones


Odpovedá: Bronislav Klucka

1. 12. 2003 1:11

> Pokud neni DLL i hostujici aplikace prelozena s runtime balicky
> tak mezi nimi
> nemuzes predavat objekty. V procesu je tak (zbytecne) cely kod VCL vlastne
> dvakrat, takze "EXE.TObject" <> "DLL.TObject".
> Viz vyse. Kazda trida (jeji VMT) musi byt v celem procesu pouze
> jednou aby si
> ji mohl takto pouzivat. A to lze docilit jen pouzitim runtime balicku.
>
> Petr Vones

Muzes byt konkretnejsi? : 

Brona


Odpovedá: Tomas Rosa

1. 12. 2003 9:43


> > Pokud neni DLL i hostujici aplikace prelozena s runtime balicky
> > tak mezi nimi
>
>Muzes byt konkretnejsi? : 

Jsi dost zapometlivy, pouzivali jsme to na nasem poslednim projektu - Oryx.

Jinak Project -> Options -> Packages -> [x] Build with runtime packages




                                        S pozdravem
                                                Tomas Rosa

------------------------=[ pinknet on every screen]=-----------------------
Tomas Rosa
Tomas.Rosa@PinkNet.cz http://www.pnws.org
+420 602 860 704
PinkNet Web Server for Win32 - FREEWARE www.pnws.org
---------------------------------------------------------------------------


Odpovedá: Bronislav Klucka

1. 12. 2003 15:07


>
> > > Pokud neni DLL i hostujici aplikace prelozena s runtime balicky
> > > tak mezi nimi
> >
> >Muzes byt konkretnejsi? : 
>
> Jsi dost zapometlivy, pouzivali jsme to na nasem poslednim
> projektu - Oryx.
>
> Jinak Project -> Options -> Packages -> [x] Build with runtime packages
>
>

Takze, pokud si dll vytvari a uvolnuje formulare samo na zaklade
callbackovych funkci z hlavni aplikace, je vse OK??

Brona





----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)